package demo;

import java.io.File;
import java.util.HashMap;

public class Test3 {
    public static void main(String[] args) {
        // 统计一个文件夹中，每种文件出现的次数
        // 统计---定义一个变量用来统计，弊端:同时只能统计一种文件
        // 利用map集合进行数据统计，键---文件后缀名值----次数

        File file = new File("D:\\Projects_\\Procjets_idea\\JavaSE\\02-Advanced\\File");
        // 定义集合
        HashMap<String, Integer> hm = new HashMap<>();
        getCount(hm, file);
        System.out.println(hm);
    }

    private static void getCount(HashMap<String, Integer> hm, File file) {
        File[] files = file.listFiles();
        for (File f : files) {
            if (f.isFile()) {
                String[] fileNameArr = f.getName().split("\\.");
                if (fileNameArr.length == 2) {
                    String filrEndName = fileNameArr[1];
                    if (hm.containsKey(filrEndName)) {
                        // 已经存在 获取已经出现的次数
                        Integer count = hm.get(filrEndName);
                        count++;
                        // 覆盖已经出现的次数
                        hm.put(filrEndName, count);
                    } else {
                        // 不存在 表示文件为第一次出现
                        hm.put(filrEndName, 1);
                    }
                }
            } else getCount(hm, f);
        }


    }


}
